const express = require('express')

const app = express()


app.get('/',(req,res)=>{
    //1.1 人为制造错误
    throw new Error('服务器内部发生错误！')
    res.send('home page.')
})
//注意：除了错误级别的中间件，其他的中间件，必须在路由之前进行配置
// 通过express。json（）这个中间件，解析表单中的json格式的数据
app.use(express.json())
// 通过express.urlencoded（）这个中间件，解析表单中的urlencoded格式的数据
app.use(express.urlencoded({extended:false}))

app.post('/user',(req,res)=>{
    //在服务器，可以使用req.body属性，来接收客户端发送过来的请求体
    //默认情况下，如果不配置解析表单数据的中间件，则req.body默认等于undefined
    console.log(req.body)
    res.send('user page.')
})

app.post('/book',(req,res)=>{
    //在服务器端可以通过req.body来获取json格式的表单数据和url-encoded格式的数据
    console.log(req.body)
    res.send('ok')
})

//2.定义错误级别中间件，捕获整个项目的异常错误，从而防止程序的崩溃
app.use((err,req,res,next)=>{
    console.log('发生了错误'+err.message)
    res.send('Error'+err.message)
})



app.listen(80,()=>{
    console.log('express server running at http://127.0.0.1')
})